home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 44 / Amiga Format CD44 (1999-08-26)(Future Publishing)(GB)(Track 1 of 3)[!][issue 1999-10].iso / -in_the_mag- / basics / amos / intuiextend20b.lha / distribution / exemples / 3dCube.asc next >
Text File  |  1980-03-03  |  3KB  |  118 lines

  1. '**************************************
  2. '                                     *
  3. '     IntuiExtend.Lib 2.0/@1995-98    *
  4. '                                     *
  5. '          by CIERP Philippe.         *
  6. '                                     *
  7. '          from AMIGAzette 83         *
  8. '                                     *
  9. '**************************************
  10. '
  11. ' Command
  12. '  -Wb 3d Centre 
  13. '  -Wb 3d Eye
  14. '  -Wb 3d Eye
  15. '  -Wb 3d Point
  16. '  -Wb 3d X
  17. '  -Wb 3d Y
  18. '  -Wb 3d Position 
  19. '
  20. Set Buffer 50
  21. Screen Open 0,320,512,32,$4
  22. Curs Off : Flash Off : Cls 0
  23. Palette $0,$111,$222,$333,$444,$555,$666,$777,$888,$999,$AAA,$BBB,$CCC,$DDD,$EEE,$FFF,$11,$11,$22,$33,$44,$55,$66,$77,$88,$99,$AA,$BB,$CC,$DD,$EE,$FF
  24. '
  25. Double Buffer : Autoback 0
  26. '
  27. Dim POLY(5,4,1)
  28. '
  29. Global CA,CB,CC,SA,SB,SC,A,B,AE,BE,CE
  30. Limit Mouse 0,0 To 1024,1024
  31. Wb 3d Centre Screen Width/2,Screen Height/2
  32. '
  33. EX=0 : EY=0 : EZ=600
  34. Wb 3d Eye EX,EY,EZ
  35. '
  36. XM=X Mouse : YM=Y Mouse
  37. '
  38. While Mouse Key<>2
  39. Timer=0
  40. A$=Inkey$
  41. If A$="7" Then Dec MX
  42. If A$="8" Then Inc MX
  43. If A$="4" Then Dec MY
  44. If A$="5" Then Inc MY
  45. If A$="1" Then Dec MZ
  46. If A$="2" Then Inc MZ
  47. If A$="9" Then Inc EZ
  48. If A$="6" Then Dec EZ
  49. '
  50. Add CA,MX,0 To 359
  51. Add CB,MY,0 To 359
  52. Add CC,MZ,0 To 359
  53. '
  54. Wb 3d Angle CA,CB,CC
  55. Wb 3d Eye XM-X Mouse,YM-Y Mouse,EZ
  56. '0 
  57. Wb 3d Point -100,100,100 : X=Wb 3d X : Y=Wb 3d Y
  58. POLY(0,0,0)=X : POLY(3,1,0)=X : POLY(4,3,0)=X
  59. POLY(0,0,1)=Y : POLY(3,1,1)=Y : POLY(4,3,1)=Y
  60. '1 
  61. Wb 3d Point 100,100,100 : X=Wb 3d X : Y=Wb 3d Y
  62. POLY(0,1,0)=X : POLY(1,0,0)=X : POLY(4,2,0)=X
  63. POLY(0,1,1)=Y : POLY(1,0,1)=Y : POLY(4,2,1)=Y
  64. '2 
  65. Wb 3d Point 100,-100,100 : X=Wb 3d X : Y=Wb 3d Y
  66. POLY(0,2,0)=X : POLY(1,3,0)=X : POLY(5,1,0)=X
  67. POLY(0,2,1)=Y : POLY(1,3,1)=Y : POLY(5,1,1)=Y
  68. '3 
  69. Wb 3d Point -100,-100,100 : X=Wb 3d X : Y=Wb 3d Y
  70. POLY(0,3,0)=X : POLY(3,2,0)=X : POLY(5,0,0)=X
  71. POLY(0,3,1)=Y : POLY(3,2,1)=Y : POLY(5,0,1)=Y
  72. '4 
  73. Wb 3d Point -100,100,-100 : X=Wb 3d X : Y=Wb 3d Y
  74. POLY(4,0,0)=X : POLY(3,0,0)=X : POLY(2,1,0)=X
  75. POLY(4,0,1)=Y : POLY(3,0,1)=Y : POLY(2,1,1)=Y
  76. '5 
  77. Wb 3d Point 100,100,-100 : X=Wb 3d X : Y=Wb 3d Y
  78. POLY(2,0,0)=X : POLY(1,1,0)=X : POLY(4,1,0)=X
  79. POLY(2,0,1)=Y : POLY(1,1,1)=Y : POLY(4,1,1)=Y
  80. '6 
  81. Wb 3d Point 100,-100,-100 : X=Wb 3d X : Y=Wb 3d Y
  82. POLY(1,2,0)=X : POLY(2,3,0)=X : POLY(5,2,0)=X
  83. POLY(1,2,1)=Y : POLY(2,3,1)=Y : POLY(5,2,1)=Y
  84. '7 
  85. Wb 3d Point -100,-100,-100 : X=Wb 3d X : Y=Wb 3d Y
  86. POLY(3,3,0)=X : POLY(2,2,0)=X : POLY(5,3,0)=X
  87. POLY(3,3,1)=Y : POLY(2,2,1)=Y : POLY(5,3,1)=Y
  88. '
  89. 'Polygone
  90. For T=0 To 5
  91. RR[T/3,POLY(T,0,0),POLY(T,0,1),POLY(T,1,0),POLY(T,1,1),POLY(T,2,0),POLY(T,2,1)]
  92. If Param<=0
  93. Polygon POLY(T,0,0),POLY(T,0,1) To POLY(T,1,0),POLY(T,1,1) To POLY(T,2,0),POLY(T,2,1)
  94. End If 
  95. RR[T/3,POLY(T,2,0),POLY(T,2,1),POLY(T,3,0),POLY(T,3,1),POLY(T,0,0),POLY(T,0,1)]
  96. If Param<=0
  97. Polygon POLY(T,0,0),POLY(T,0,1) To POLY(T,3,0),POLY(T,3,1) To POLY(T,2,0),POLY(T,2,1)
  98. End If 
  99. Next T
  100. Pen 15 : Print "Timer:";Timer;"  X:";MX;" Y:";MY;" Z:";MZ;" Zoom:";EZ;"  "
  101. Screen Swap 
  102. Cls 0
  103. Home 
  104. MX1=MX : MY1=MY
  105. Wend 
  106. '
  107. Procedure RR[T,X1,Y1,X2,Y2,X3,Y3]
  108. C=Wb 3d Position(X1,Y1,X2,Y2,X3,Y3)
  109. '
  110. COUL=15
  111. If C<=0
  112. P=C/(-27*COUL)
  113. P=Min(Max(1,P),COUL)
  114. End If 
  115. Ink P+((T)*16)
  116. '
  117. End Proc[C]
  118.